/*
package com.shensi.adminCollect.utils.station;
import com.shensi.adminCollect.service.coupon.ICouponIssueService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.listener.KeyExpirationEventMessageListener;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.stereotype.Component;
*/
/**
 * @Auther: LogicQin
 * @Date: 2023/7/26 14:39
 * @Description:
 *//*

@Slf4j
@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {

    @Autowired
    private ICouponIssueService couponIssueService;

    // 把我们上面一步配置的bean注入进去
    public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
        super(listenerContainer);
    }


    */
/**
     * 针对redis数据失效事件，进行数据处理
     *
     * @param message
     * @param pattern
     *//*

    @Override
    public void onMessage(Message message, byte[] pattern) {
        // 获取过期的 key
        String expiredKey = message.toString();
        log.info("onMessage --> Redis 过期的 key 是：{}", expiredKey);

        // 检查过期的 key 是否以 "coupon:" 作为前缀
        if (expiredKey.startsWith("coupon:")) {
            try {
                // 从 key 中提取优惠券的 ID
                String couponIdStr = expiredKey.substring("coupon:".length());
                Long issueId = Long.parseLong(couponIdStr);

                // 使用提取到的优惠券 ID 调用 updateCouponStatus 方法来修改优惠券状态
                couponIssueService.updateCouponStatus(issueId, "3");

                log.info("过期 key 处理完成，优惠券 ID：{}", issueId);
            } catch (NumberFormatException e) {
                log.error("过期 key 的优惠券 ID 解析异常：{}", expiredKey, e);
            } catch (Exception e) {
                log.error("处理 Redis 过期的 key 异常：{}", expiredKey, e);
            }
        } else if(expiredKey.startsWith("activity:")){
            try {
                // 从 key 中提取优惠券的 ID
                String couponIdStr = expiredKey.substring("activity:".length());
                Long issueId = Long.parseLong(couponIdStr);

                // 使用提取到的优惠券 ID 调用 updateCouponStatus 方法来修改优惠券状态
                couponIssueService.updateCouponActivityStatus(issueId, "3");

                log.info("过期 key 处理完成，优惠券 ID：{}", issueId);
            } catch (NumberFormatException e) {
                log.error("过期 key 的优惠券 ID 解析异常：{}", expiredKey, e);
            } catch (Exception e) {
                log.error("处理 Redis 过期的 key 异常：{}", expiredKey, e);
            }
        }
    }
}
*/
